Current telecommunications networks are very complex, being comprised of large numbers of nodes each of which can be further comprised of a number of hardware elements performing a variety of functions. The complexity of these networks and the ways in which these nodes are employed to implement the network functionality often makes problem detection and troubleshooting a difficult task. For example, a hardware fault in any of the network nodes involved in signalling and payload handling for voice calls may result in calls having poor speech quality, one-way speech (only one party hears speech and the other party does not hear anything), or mute calls (neither parties hear anything). Currently, such problems are usually only identified when a customer notifies or complains to the network operator. Once the existence of a problem has been verified, laborious manual test procedures are then required to actually locate the cause of the problem. Whilst hardware elements can be provided with Built-In Self Test (BIST) functionality, these self tests are not always sufficient for detecting all possible faults and cannot be implemented without impacting the ongoing traffic being handled by that hardware.
The difficulty arises largely due to the complexity of the networks as there can be a large number of possible entities that could be the source of the problem. For example, most networks pool their hardware resources such that any one of a number of resources may be used for a particular call. As a result of this pooling, even for two consecutive, identical calls different hardware resources may be used and the choice of hardware cannot be predicted. As a result, an ongoing problem will only occur arbitrarily, and reproduction of the problem for fault detection and test purposes will be very difficult.